package com.javase.homework.module2;

/*
1. 编程实现以下需求：

   定义一个长度为[16][16]的整型二维数组并输入或指定所有位置的元素值，分别实现二维数组中所有行和所有列中所有元素的累加和并打印。

   再分别实现二维数组中左上角到右下角和右上角到左下角所有元素的累加和并打印。
 */
public class Homework1 {
    public static void main(String[] args) {

        //定义一个长度为[16][16]的整型二维数组
        int[][] arr = new int[16][16];

        //对二维数组进行遍历，指定所有位置的元素值
        for (int i = 0; i < arr.length; i++) {

            for (int j = 0; j <arr[i].length; j++) {

                arr[i][j] = 10 + i + j;
            }
        }


        //打印二维数组所有位置的元素
        for (int i = 0; i < arr.length; i++) {

            for (int j = 0; j < arr[i].length; j++) {

                System.out.print(arr[i][j] + " ");
            }

            System.out.println();
        }

        System.out.println("--------------------------------------------------------------------");

        //初始化为0的整数变量，用于记录累加值
        int sum = 0;

        //对二维数组所有元素进行遍历，将每一位的元素进行相加
        for (int i = 0; i < arr.length; i++) {

            for (int j = 0; j <arr[i].length; j++) {

                sum += arr[i][j];
            }
        }
        System.out.println("二维数组中所有行和所有列中所有元素的累加和是" + sum);

        System.out.println("--------------------------------------------------------------------");

        //初始化为0的整数变量，用于记录累加值
        int sum2 = 0;

        //对二维数组的元素进行遍历
        //挑选出左上到右下的元素，arr[0][0]、arr[1][1]... arr[16][16]，即i等于j
        //挑选出右上到左下的元素，arr[0][15]、arr[1][14]... arr[15][0]，即i加上j等于15
        for (int i = 0; i < arr.length; i++) {

            for (int j = 0; j <arr[i].length; j++) {

                if (i == j || i + j == 15) {

                    sum2 += arr[i][j];
                }
            }
        }
        System.out.println("二维数组中左上角到右下角和右上角到左下角所有元素的累加和" + sum2);
    }
}
